#ifndef CLASS_ENTITY_CAMERA_HPP_
# define CLASS_ENTITY_CAMERA_HPP_

# include "Abstract/Entity/AEntity.hpp"

namespace		Entity
{
  class			Camera2D: public AEntity
  {
  public:
	Camera2D(Component::Vector3f const &, Component::Vector2i const &);
	Camera2D(Camera2D const &);

	Camera2D const				&operator=(Camera2D const &);

	Component::Vector2i const	&GetRectangle() const throw();
	Component::Vector2i const	&SetRectangle(Component::Vector2i const &) throw();

	~Camera2D() throw();


  protected:
	Component::Vector2i	_Rect;
  };

  class			Camera3D: public AEntity
  {
  public:
	Camera3D(Component::Vector3f const &, Component::Vector3f const & = Component::Vector3f(.0f, .0f, .0f));
	Camera3D(Camera3D const &);

	Camera3D const				&operator=(Camera3D const &);

	Component::Vector3f const	&GetTarget() const throw();
	Component::Vector3f const	&SetTarget(Component::Vector3f const &) throw();

	~Camera3D() throw();


  protected:
	Component::Vector3f	_Target;
  };
}

#endif
